﻿using System;
using System.Diagnostics.Contracts;

namespace OpenWaves
{
    [AttributeUsage(AttributeTargets.Interface)]
    public sealed class DefaultImplementationAttribute : Attribute
    {
        private readonly Type implementationType;
        public Type ImplementationType
        {
            get { return this.implementationType; }
        }

        public DefaultImplementationAttribute(Type implementationType)
        {
            Contract.Requires<ArgumentNullException>(implementationType != null);

            this.implementationType = implementationType;
        }
    }
}